<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>


    // sort()  数组排序
    // 1. 字符排序   比较字符对应的unicode码(包含ASCII), 第一个不相同就比第一个,第一个相同就比第二个
    // 2. 纯数字排序  


    // 返回值: 排序后的原数组
    // 是否影响原数组 : 影响


    // ASCII(0-127)   ->  GB2312  GBK   ->  Unicode ->   utf-8

    // 字符排序
    // var list = [86, 58, 61, "哈", 43, 92, "hello", 71, "world", 5, "嘿", 8, 9, 6, 3, 2];
    // var result = list.sort();
    // console.log(result);
    // console.log(list);

    // sort纯数字排序
    // sort方法传入一个函数作为实际参数(定义如何排序),该函数在sort内部执行

    // 传入的函数定义如何排序? 
    // 函数有两个形参 表示参与比较的前后两个元素,根据函数返回的结果来定义排序的方式

    var list = [86, 58, 61, 43, 92, 71, 5, 8, 9, 6, 3, 2];

    list.sort(function (a, b) {// a b 参与比较的前后两个元素
        // console.log(a, b);
        // return a - b;   // a - b > 0 => a > b 时交换位置 大值放后面  从小到大排
        return b - a;   // b - a > 0 => a < b 时交换位置 小值放后面  从大到小排
        //             小结论 如果返回值>0将交换位置
    });

    console.log(list);














    // 字符串和字符串比较时 => 比的也是unicode码(包含ASCII)
    // "8"  =>  56
    // "9"  =>  57
    // console.log("86" < "9");  //  56 < 57

    // 字符串和数字比较时, 字符串先隐式转数字再比较
    // console.log("86" < 9);  // "86" => 86  < 9 => false


</script>

</html>